package com.lottery.material.dao.promotion;

import com.lottery.material.pojo.page.Page;
import com.lottery.material.pojo.promotion.PromotionFeeConfig;
import com.lottery.material.pojocustom.promotion.PromotionFeeConfigCustom;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description 推广收费配置Mapper
 * @author rambo
 * @date 2019年4月11日 下午9:29:04
 */
@SuppressWarnings("JavaDoc")
public interface PromotionFeeConfigMapper {
	
    Integer deleteByPrimaryKey(Integer id);

    Integer insert(PromotionFeeConfig record);

    Integer insertSelective(PromotionFeeConfig record);

    PromotionFeeConfig selectByPrimaryKey(Integer id);

    Integer updateByPrimaryKeySelective(PromotionFeeConfig record);

    Integer updateByPrimaryKey(PromotionFeeConfig record);

    /**
     * description：查询扩展类分页列表
     * user 朱正磊
     * time 2019-04-17 17:01
     * @param page 分页对象
     * @return 返回扩展类分页列表数据
     */
    List<PromotionFeeConfigCustom> findCustomListPage(Page page);

    /**
     * description：根据主键查询唯一扩展类数据
     * user 朱正磊
     * time 2019-04-17 17:03
     * @param id 主键
     * @return 返回唯一扩展类数据
     */
    PromotionFeeConfigCustom findCustomById(Integer id);

    /**
     * （可以不存在，如果存在只允许存在一条数据）（未逻辑删除）
     * description：根据推广金额查询列表数据（如果主键不为null，查询的时候排除掉该记录）（根据推广规则）
     * user 朱正磊
     * time 2019-05-15 11:16
     * @param id 主键（新增为null，修改不为null）
     * @param chargeAmount 推广金额
     * @param promotionRuleId 推广规则ID
     * @return 返回列表数据
     */
    List<PromotionFeeConfig> selectByChargeAmount(@Param("id") Integer id,
                                                  @Param("chargeAmount") Integer chargeAmount,
                                                  @Param("promotionRuleId") Integer promotionRuleId);

    /**
     * description：查询没有被逻辑删除的数据（根据推广规则）
     * user 朱正磊
     * time 2019-05-15 14:21
     * @param promotionRuleId 推广规则ID
     * @return 返回没有被逻辑删除的数据集合列表
     */
    List<PromotionFeeConfig> selectNotBeDeleted(Integer promotionRuleId);

}
